package com.bringway.p2p.dao.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONObject;

import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;

import com.bringway.framework.dao.P2PJdbcDao;
import com.bringway.p2p.dao.DkDao;

/**
 * 
 * @author zhai
 * @version 创建时间：2015年12月14日 上午9:34:42
 * @功能：抽奖结果页面
 */

@Repository
public class DkDaoImpl  extends P2PJdbcDao implements DkDao {

	@Override
	public List querydk(JSONObject params) {

		int start = params.optInt("start");
		int limit = params.optInt("limit");
		String startDate = params.optString("startDate");
		String endDate = params.optString("endDate");
		if(StringUtils.isNotEmpty(startDate)){
			startDate=startDate+" 00:00:00";
		}
		if(StringUtils.isNotEmpty(endDate)){
			endDate=endDate+" 23:59:59";
		}
		String ddh = params.optString("ddh");
		int mindkje = params.optInt("mindkje");
		int maxdkje = params.optInt("maxdkje");
		String state = params.optString("state");
		
		
		StringBuffer sql = new StringBuffer();
		Map<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put("START", start);
		paramMap.put("LIMIT", limit);
		paramMap.put("DDH", ddh);
		paramMap.put("MAXDKJE", maxdkje);
		paramMap.put("MINDKJE", mindkje);
		paramMap.put("STATE", state);

		
		
		sql.append(" SELECT *,date_format(CZSJ,'%Y-%c-%d %h:%i:%s') AS CZSJ");
		sql.append(" FROM v_p2p_czjl_zztl  where 1=1 ");
		if(StringUtils.isNotEmpty(startDate)){
			sql.append(" AND CZSJ >= :startDate");
			paramMap.put("startDate",startDate);
		}
		if(StringUtils.isNotEmpty(endDate)){
			sql.append(" AND CZSJ <= :endDate");
			paramMap.put("endDate",endDate);
		}
		if(mindkje>0){
	        sql.append("AND CZJE > :MINDKJE ");
		}
		
	    if(maxdkje>0){
			sql.append(" AND CZJE < :MAXDKJE");
		}
	    if(StringUtils.isNotEmpty(ddh)){
			sql.append(" AND DDH <= :DDH");
		}
		
		
		if((StringUtils.isNotEmpty(state))&&(state.equals("0"))){
			System.out.println("查询全部记录。");
		}
		if((StringUtils.isNotEmpty(state))&&(state.equals("1"))){
			sql.append(" AND CZJG = '1' ");
		}
		if((StringUtils.isNotEmpty(state))&&(state.equals("2"))){
			sql.append("  AND CZJG = '0' ");
		}

		
		sql.append(" order by CZSJ desc LIMIT :START,:LIMIT");
		return this.getNamedParameterJdbcTemplate().queryForList(
				sql.toString(), paramMap);
	}

	/**
	 * @author zhai
	 * DkDao 的实现类
	 * 获取打款人的数据个数
	 */
	@SuppressWarnings("deprecation")
	@Override
	public int getdkCount(JSONObject params) {
		// TODO Auto-generated method stub
		int start = params.optInt("start");
		int limit = params.optInt("limit");
		String startDate = params.optString("startDate");
		String endDate = params.optString("endDate");
		if(StringUtils.isNotEmpty(startDate)){
			startDate=startDate+" 00:00:00";
		}
		if(StringUtils.isNotEmpty(endDate)){
			endDate=endDate+" 23:59:59";
		}
		String ddh = params.optString("ddh");
		int mindkje = params.optInt("mindkje");
		int maxdkje = params.optInt("maxdkje");
		String state = params.optString("state");
		
		
		StringBuffer sql = new StringBuffer();
		Map<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put("START", start);
		paramMap.put("LIMIT", limit);
		paramMap.put("DDH", ddh);
		paramMap.put("MAXDKJE", maxdkje);
		paramMap.put("MINDKJE", mindkje);
		paramMap.put("STATE", state);

		
		
		sql.append(" SELECT count(*) CT ");
		sql.append(" FROM v_p2p_czjl_zztl  where 1=1 ");
		if(StringUtils.isNotEmpty(startDate)){
			sql.append(" AND CZSJ >= :startDate");
			paramMap.put("startDate",startDate);
		}
		if(StringUtils.isNotEmpty(endDate)){
			sql.append(" AND CZSJ <= :endDate");
			paramMap.put("endDate",endDate);
		}
		if(mindkje>0){
	        sql.append("AND CZJE > :MINDKJE ");
		}
		
	    if(maxdkje>0){
			sql.append(" AND CZJE < :MAXDKJE");
		}
	    if(StringUtils.isNotEmpty(ddh)){
			sql.append(" AND DDH <= :DDH");
		}
		
		
		if((StringUtils.isNotEmpty(state))&&(state.equals("0"))){
			System.out.println("查询全部记录。");
		}
		if((StringUtils.isNotEmpty(state))&&(state.equals("1"))){
			sql.append(" AND CZJG = '1' ");
		}
		if((StringUtils.isNotEmpty(state))&&(state.equals("2"))){
			sql.append("  AND CZJG = '2' ");
		}
		return this.getNamedParameterJdbcTemplate().queryForInt(sql.toString(), paramMap);
	}

}
